package com.util;

import lombok.Data;
import net.bytebuddy.description.type.TypeDescription;

import java.util.List;

/**
 * @author yutianhong
 * @version 1.0
 * @since 2023/11/28 15:17
 */
@Data
public class ClassInfo {
    /**
     * 类名全路径
     */
    public String className;
    /**
     * 修饰符
     *
     * @see java.lang.reflect.Modifier
     */
    public int modifiers;
    /**
     * 方法定义
     */
    public List<MethodInfo> methodInfoList;
    /**
     * 字段定义
     */
    public List<FieldInfo> fieldInfoList;
    /**
     * 父类
     */
    public String superClassName;
    /**
     * 类定义的泛型变量
     */
    public List<ParamInfo> typeVariablesInfoList;
    /**
     * 父类泛型
     */
    public List<ParamInfo> superGenericInfoList;
    /**
     * 类注解
     */
    public List<AnnotationInfo> annotationInfoList;
    public List<String> interfaceList;

    public transient TypeDescription.Generic typeDefinition;

}

